package com.yonyou.pmclouds.plan.rmiitf;

import com.yonyou.pmclouds.basecom.exception.BusinessException;
import com.yonyou.pmclouds.plan.entity.PlanProgressVO;
import com.yonyou.pmclouds.plan.entity.PlanWriteVO;
import com.yonyou.pmclouds.plan.entity.ProjectPlanVO;

/**
 * 项目计划维护
 */
public interface ProjectPlanMaintain {

    String insertPlan(ProjectPlanVO plan) throws BusinessException;

    String updatePlan(ProjectPlanVO plan) throws BusinessException;

    void deletePlan(String id, String changeFlag) throws BusinessException;

    /**
     * 字段升级，接口调整,使用参数为PlanProgressTransVO的方法
     */
    @Deprecated
    int updatePlanProgress(PlanProgressVO[] progresses) throws BusinessException;

    PlanWriteVO updatePlanProgressFull(PlanWriteVO planWriteVO) throws BusinessException;

    String savePlan(ProjectPlanVO plan) throws BusinessException;

    String autoSavePlan(ProjectPlanVO plan) throws BusinessException;

    void updatePlanforAdjust(ProjectPlanVO plan) throws BusinessException;

    ProjectPlanVO commit(ProjectPlanVO plan) throws BusinessException;

    ProjectPlanVO[] updateVOs(ProjectPlanVO[] planVOs) throws BusinessException;

    ProjectPlanVO addDefaultPorjetPlan(ProjectPlanVO projectPlan) throws BusinessException;

    void savePlanAuto(String projectName,String pkProject,String pkTenant, String pkOrg, String type) throws BusinessException;

    String addOldPlanToSchedule(String tenantId) throws BusinessException;
}
